package com.hqd.ch03.v28.spel;

import com.hqd.ch03.v28.spel.standard.ExpressionState;

/**
 * ast节点接口
 */
public interface SpelNode {
    /**
     * 获取节点值
     *
     * @param expressionState
     * @return
     */
    Object getValue(ExpressionState expressionState);

    /**
     * 获取子节点
     *
     * @param index
     * @return
     */
    SpelNode getChild(int index);

    /**
     * 获取起始下标
     *
     * @return
     */
    int getStartPos();

    /**
     * 获取结束下标
     *
     * @return
     */
    int getEndPos();
}
